<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Usando Zend_Tool na Linha de Comando - Zend Framework Manual</title>

    <link href="../css/shCore.css" rel="stylesheet" type="text/css" />
    <link href="../css/shThemeDefault.css" rel="stylesheet" type="text/css" />
    <link href="../css/styles.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Zend Framework</h1>
<h2>Programmer's Reference Guide</h2>
<ul>
    <li><a href="../en/zend.tool.usage.cli.html">Inglês (English)</a></li>
    <li><a href="../pt-br/zend.tool.usage.cli.html">Português Brasileiro (Brazilian Portuguese)</a></li>
</ul>
<table width="100%">
    <tr valign="top">
        <td width="85%">
            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.tool.html">Zend_Tool</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.tool.html">Zend_Tool</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.tool.extending.html">Extendendo o Zend_Tool</a></div>
                    </td>
                </tr>
            </table>
<hr />
<div id="zend.tool.usage.cli" class="section"><div class="info"><h1 class="title">Usando Zend_Tool na Linha de Comando</h1></div>
    

    <p class="para">
        O <acronym class="acronym">CLI</acronym>, ou ferramenta de linha de comando (internamente conhecida como ferramenta de console),
        é a principal interface para envio de requisições <span class="classname">Zend_Tool</span>.
        Com a ferramenta <acronym class="acronym">CLI</acronym>, desenvolvedores podem emitir requisições para a ferramenta
        dentro da &quot;janela de linha de comando&quot;, também comumente conhecida como uma janela do &quot;terminal&quot;. Este
        ambiente é predominante em um contexto *nix, porem tem uma implementação comum
        no windows com o <var class="filename">cmd.exe</var>, console2 e também com o projeto Cygwin.
    </p>

    

    <div class="section" id="zend.tool.usage.cli.installation"><div class="info"><h1 class="title">Instalação</h1></div>
        

        <div class="section" id="zend.tool.usage.cli.installation.download-and-go"><div class="info"><h1 class="title">Download E Siga</h1></div>
            

            <p class="para">
                Primeiro faça o download do Zend Framework. Isto pode ser feito indo em framework.zend.com
                e fazendo download do último release. Depois que você fez o download do pacote e colocou-o
                no seu sistem. O próximo passo é deixar o comando zf disponível para seu sistema
                O caminho mais fácil de fazer isso, é copiar os próprios arquivos do diretório bin/
                do download, e colocar esses arquivos no <em class="emphasis">mesmo</em> diretório local do
                binário do cli <acronym class="acronym">PHP</acronym>.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.installation.pear"><div class="info"><h1 class="title">Instalação Via Pear</h1></div>
            

            <p class="para">
                Para instalar via PEAR, você deve usar o site de terceiros zfcampus.org para obter o
                último pacote PEAR do Zend Framework. Estes pacotes são tipicamente construídos dentro
                de um dia de um release oficial do Zend Framework. O benefício da instalação via gerenciador
                de pacotes PEAR é que durante o processo de instalação, a biblioteca ZF vai acabar no
                include_path, e os scripts zf.php e zf scripts irão acabar em um lugar no seu sistema
                que vai permitir executar-los sem nenhuma configuração adicional.
            </p>

            <pre class="programlisting brush: text">
pear discover-channel pear.zfcampus.org
pear install zfcampus/zf
</pre>


            <p class="para">
                É isto. Depois de instalação inicial, você deve ser capaz de continuar executando
                o comando zf. Uma boa maneira para ver se está tudo certo é executar o zf --help
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.installation.install-by-hand"><div class="info"><h1 class="title">Instalação na Mão</h1></div>
            

            <p class="para">
                Instalação na mão refere-se ao processo de forçar o zf.php e a biblioteca Zend Framework
                a trabalhar juntas quando elas são colocadas em lugares não-convencionais, ou pelo menos,
                em um lugar que seu sistema não pode dispachar facilmente (típico de programas no PATH
                do seu sistema).
            </p>

            <p class="para">
                Se você está em um sistema *nix ou mac, você pode também criar um link de algum lugar
                no seu path para o arquivo zf.sh. Se fizer isso, você não precisa se preocupar em ter
                a biblioteca Zend Framework no seu include_path, como os arquivos zf.php e zf.sh serão
                capazes de acessar a biblioteca em relação a onde elas estão (significa que os arquivos
                no ./bin/ são ../library/ relativos a biblioteca Zend Framework).
            </p>

            <p class="para">
                Existe um número de outras opções disponíveis para configurar o zf.php e a biblioteca
                no seu sistema. Essas opções giram em torno da definição de variáveis específicas de
                ambiente. Estas serão descritas mais tarde na seção &quot;customizando o ambiente CLI&quot;. As
                variáveis de ambiente para configurar o zf.php no include_path, ZF_INCLUDE_PATH e
                ZF_INCLUDE_PATH_PREPEND, são as mais interessantes.
            </p>
        </div>
    </div>

    <div class="section" id="zend.tool.usage.cli.general-purpose-commands"><div class="info"><h1 class="title">Comandos de Propósito General</h1></div>
        

        <div class="section" id="zend.tool.usage.cli.general-purpose-commands.version"><div class="info"><h1 class="title">Version</h1></div>
            

            <p class="para">
                Isto mostrará o número da versão corrente da cópia do Zend Framework que a ferramenta
                zf.php está usando.
            </p>

            <pre class="programlisting brush: text">
zf show version
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.general-purpose-commands.built-in-help"><div class="info"><h1 class="title">Help Embutido</h1></div>
            

            <p class="para">
                O sistema de help embutido é o primeiro lugar onde você pode obter informações atualizadas
                sobre o que o seu sistema é capaz de fazer. O sistema de help é dinâmico pois como
                os providers são adicionados ao seus sistema, eles são automaticamente executáveis,
                bem como, os parametros necessários para executar-los estarão na tela de ajuda. O caminho
                mais fácil de obter a tela de ajuda é o seguinte:
            </p>

            <pre class="programlisting brush: text">
zf --help
</pre>


            <p class="para">
                Isto dará a você uma visão geral de várias capacidades do sistema.
                Algumas vezes, existem mais comandos expecíficos que podem ser executados, e para ter
                mas informações sobre eles, você pode ter que rodar mais um comando de help especializado.
                Para um help especializado, simplesmente substitua qualquer um dos elementos do comando
                por uma &quot;?&quot;. Isto dirá ao sistema de help que você quer mais informações sobre que
                comandos podem ir no lugar da interrogação. Por exemplo:
            </p>

            <pre class="programlisting brush: text">
zf ? controller
</pre>


            <p class="para">
                O acima exposto significa &quot;mostre-me todos os &#039;actions&#039; do provider &#039;controller&#039;&quot;;
                enquanto o seguinte:
            </p>

            <pre class="programlisting brush: text">
zf show ?
</pre>


            <p class="para">
                significa &quot;mostre-me todos os providers que suportam a action &#039;show&#039;&quot;. Isso funciona
                para as opções do exemplo a baixo, bem como você pode ver nos exemplos a seguir:
            </p>

            <pre class="programlisting brush: text">
zf show version.? (mostra todas as especialidades)
zf show version ? (mostra todas as opções)
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.general-purpose-commands.manifest"><div class="info"><h1 class="title">Manifest</h1></div>
            

            <p class="para">
                Isto irá mostrar o que existe no manifest das ferramentas do sistema. Isso é mais importante
                para os desenvolvedores de provider do que para usuários casuais das ferramentas do sistema.
            </p>

            <pre class="programlisting brush: text">
zf show manifest
</pre>

        </div>

        
    </div>

    <div class="section" id="zend.tool.usage.cli.project-specific-commands"><div class="info"><h1 class="title">Comandos Específicos do Projeto</h1></div>
        

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.project"><div class="info"><h1 class="title">Project</h1></div>
            

            <p class="para">
                O provider project é o primeiro comando que você deve querer rodar. Ele irá configurar a
                estrutura básica da sua aplicação. Isto é necessário antes de qualquer dos outros
                providers pode serem executado.
            </p>

            <pre class="programlisting brush: text">
zf create project MyProjectName
</pre>


            <p class="para">
                Isso irá criar um projeto em um diretório chamado ./MyProjectName. A partir deste ponto,
                é importante notar que qualquer dos comandos subseqüentes na linha de comando deve ser
                executado de dentro do diretório do projeto que você acabou de criar. Assim, após a criação,
                a mudança de diretório é necessária.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.module"><div class="info"><h1 class="title">Module</h1></div>
            

            <p class="para">
                O provider module permite a fácil criação de um modulo Zend Framework. Um
                um módulo segue ligeiramente o padrão hMVC. Ao criar módulos, levamos a mesma
                estrutura usada no nível application/, e duplicamos dentro do nome escolhido
                para o seu módulo, dentro do diretório &quot;modules&quot; do diretório application/
                sem duplicar o diretório de modules em si. Por exemplo:
            </p>

            <pre class="programlisting brush: text">
zf create module Blog
</pre>


            <p class="para">
                Isto irá criar um módulo chamado Blog em application/modules/Blog, e todos os artefatos
                que o módulo irá precisar.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.controller"><div class="info"><h1 class="title">Controller</h1></div>
            

            <p class="para">
                O privider controller é responsável por criar (principalmente) controllers vazios bem
                como seus correspondentes diretórios dos script de view e os arquivos. Para utiliza-lo
                crie um &#039;Auth&#039; controlller, por exemplo, execute:
            </p>

            <pre class="programlisting brush: text">
zf create controller Auth
</pre>


            <p class="para">
                Isto irá criar um controller chamado Auth, expecificamente criará um arquivo em
                application/controllers/AuthController.php com AuthController dentro.
                Se você quiser criar um controller para um módulo, use qualquer dos seguintes comandos:
            </p>

            <pre class="programlisting brush: text">
zf create controller Post 1 Blog
zf create controller Post -m Blog
zf create controller Post --module=Blog
</pre>


            <p class="para">
                Note: No primeiro comando, 1 é o valor para a flag &quot;includeIndexAction&quot;.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.action"><div class="info"><h1 class="title">Action</h1></div>
            

            <p class="para">
                Para criar uma action dentro de um controller existente:
            </p>

            <pre class="programlisting brush: text">
zf create action login Auth
zf create action login -c Auth
zf create action login --controller-name=Auth
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.view"><div class="info"><h1 class="title">View</h1></div>
            

            <p class="para">
                Para criar uma view fora do controller/action corrente, você poderia
                usar um dos seguintess comandos:
            </p>

            <pre class="programlisting brush: text">
zf create view Auth my-script-name
zf create view -c Auth -a my-script-name
            </pre>


            <p class="para">
                Isto irá criar um script de view na pasta do controller Auth.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.model"><div class="info"><h1 class="title">Model</h1></div>
            

            <p class="para">
                O provider model é apenas responsável por criar os arquivos de modelo de forma adequada,
                com o próprio nome dentro da pasta application. Por exemplo
            </p>

            <pre class="programlisting brush: text">
zf create model User
</pre>


            <p class="para">
                Se você deseja criar um model dentro de um módulo específico:
            </p>

            <pre class="programlisting brush: text">
zf create model Post -m Blog
</pre>


            <p class="para">
                O comando a cima cria um model &#039;Post&#039; dentro do módulo &#039;Blog&#039;.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.form"><div class="info"><h1 class="title">Form</h1></div>
            

            <p class="para">
                O provider form é apenas responsável por criar o arquivo e o
                método init() de forma adequada, com o nome adequado dentro da pasta application. Por exemplo:
            </p>

            <pre class="programlisting brush: text">
zf create form Auth
</pre>


            <p class="para">
                Se você deseja criar um model dentro de um módulo expecífico:
            </p>

            <pre class="programlisting brush: text">
zf create form Comment -m Blog
</pre>


            <p class="para">
                O comando acima criará o form &#039;Comment&#039; dentro do módulo &#039;Blog&#039;.
            </p>
        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.database-adapter"><div class="info"><h1 class="title">DbAdapter</h1></div>
            

            <p class="para">
                Parar configurar um DbAdapter, você precisará fornecer informações como uma
                string de url codificada. As strings precisam estar com aspas na linha de comando.
            </p>

            <p class="para">
                Por exemplo, para digitar as seguintes informações:

                <ul class="itemizedlist">
                    <li class="listitem">
                        <p class="para">adapter: Pdo_Mysql</p>
                    </li>

                    <li class="listitem">
                        <p class="para">username: test</p>
                    </li>

                    <li class="listitem">
                        <p class="para">password: test</p>
                    </li>

                    <li class="listitem">
                        <p class="para">dbname: test </p>
                    </li>
                </ul>

                O seguinte comando terá que ser rodado na linha de comando:
            </p>

            <pre class="programlisting brush: text">
zf configure dbadapter &quot;adapter=Pdo_Mysql&amp;username=test&amp;password=test&amp;dbname=test&quot;
</pre>


            <p class="para">
                Isto assume que você deseja armazenar estas informações no
                espaço de &#039;production&#039; do arquivo de configuração da aplicação. O comando seguinte
                irá demonstrar uma configuração para sqlite, na sessão &#039;development&#039; do arquivo de
                configuração da aplicação.
            </p>

            <pre class="programlisting brush: text">
zf configure dbadapter &quot;adapter=Pdo_Sqlite&amp;dbname=../data/test.db&quot; development
zf configure dbadapter &quot;adapter=Pdo_Sqlite&amp;dbname=../data/test.db&quot; -s development
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.db-table"><div class="info"><h1 class="title">DbTable</h1></div>
            

            <p class="para">
                O provider DbTable é responsável por criar arquivos de modelo
                <span class="classname">Zend_Db_Table</span>/dados de acesso para a sua aplicação consumir,
                com o nome da classe adequada e em local apropriado na aplicação.
                As duas importantes peças de informação são o <em class="emphasis">nome da DbTable</em>,
                e o <em class="emphasis">nome da tabela atual banco de dados</em>. Por exemplo:
            </p>

            <pre class="programlisting brush: text">
zf create dbtable User user
zf create dbtable User -a user

// também aceita a opção force para sobreescrever arquivos existentes
zf create dbtable User user -f
zf create dbtable User user --force-overwrite
</pre>


            <p class="para">
                O provider DbTable é também capaz de criar os arquivos apropriadamente
                mapeando o banco de dados configurado com o provider DbAdapter abaixo.
            </p>

            <pre class="programlisting brush: text">
zf create dbtable.from-database
</pre>


            <p class="para">
                Ao executar o acima exposto, pode ser fazer sentido usar primeiro a flag de simulação
                &quot;-p&quot; para que você possa ver o que seria feito, e que tablelas podem
                ser encontradas no banco da dados.
            </p>

            <pre class="programlisting brush: text">
zf -p create dbtable.from-database
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.project-specific-commands.layout"><div class="info"><h1 class="title">Layout</h1></div>
            

            <p class="para">
                Atualmente, a única ação suportada para layout é simplesmente permitir-lhes,
                então configurar apropriadamente o arquivo application.ini para o aplicativo trabalhar,
                e criar os diretórios e arquivos layout.phtml.
            </p>

            <pre class="programlisting brush: text">
zf enable layout
</pre>

        </div>
    </div>

    <div class="section" id="zend.tool.usage.cli.environment-customization"><div class="info"><h1 class="title">Personalização do Ambiente</h1></div>
        

        <div class="section" id="zend.tool.usage.cli.environment-customization.storage-directory"><div class="info"><h1 class="title">O Storage Directory</h1></div>
            

            <p class="para">
               O storage directory é importante para que os providers poderem ter um lugar para encontrar
               a lógica do usuário personalizada gerada que pode mudar a maneira como eles se comportam.
               Um exemplo pode ser encontrado abaixo é a colocação de um arquivo profile do projeto.
            </p>

            <pre class="programlisting brush: text">
zf --setup storage-directory
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.environment-customization.configuration-file"><div class="info"><h1 class="title">O Arquivo de Configuração</h1></div>
            

            <p class="para">
                Isto irá criar o arquivo zf.ini adequado. Este <em class="emphasis"> deve </em>
                ser executado após <strong class="command">zf --setup storage-directory</strong>. Se não for,
                será localizado dentro do diretório home do usuário. Se for, ele será localizado
                dentro do storage directory do usuário.
            </p>

            <pre class="programlisting brush: text">
zf --setup config-file
</pre>

        </div>

        <div class="section" id="zend.tool.usage.cli.environment-customization.environment-locations"><div class="info"><h1 class="title">Environment Locations</h1></div>
            

            <p class="para">
                Estes devem ser configurados, se você deseja substituir os locais padrão onde o zf
                tentará de ler os seus valores.
            </p>

            <ul class="itemizedlist">
                <li class="listitem">
                    <p class="para">ZF_HOME</p>

                    <ul class="itemizedlist">
                        <li class="listitem">
                            <p class="para">o diretório onde a ferramenta irá procurar um diretório home</p>
                        </li>

                        <li class="listitem"><p class="para">o diretório deve existir</p></li>

                        <li class="listitem">
                            <p class="para">ordem de pesquisa:</p>

                            <ul class="itemizedlist">
                                <li class="listitem"><p class="para">variável de ambiente ZF_HOME</p></li>
                                <li class="listitem"><p class="para">variável de ambiente HOME</p></li>
                                <li class="listitem"><p class="para">então a variável de ambiente HOMEPATH</p></li>
                            </ul>
                        </li>
                    </ul>
                </li>

                <li class="listitem">
                    <p class="para">ZF_STORAGE_DIRECTORY</p>

                    <ul class="itemizedlist">
                        <li class="listitem">
                            <p class="para">onde esta ferramenta vai procurar por um storage directory</p>
                        </li>

                        <li class="listitem"><p class="para">o diretório deve existir</p></li>

                        <li class="listitem">
                            <p class="para">ordem de pesquisa:</p>

                            <ul class="itemizedlist">
                                <li class="listitem">
                                    <p class="para">variável de ambiente ZF_STORAGE_DIRECTORY</p>
                                </li>

                                <li class="listitem"><p class="para">diretório $homeDirectory/.zf/</p></li>
                            </ul>
                        </li>
                    </ul>
                </li>

                <li class="listitem">
                    <p class="para">ZF_CONFIG_FILE</p>

                    <ul class="itemizedlist">
                        <li class="listitem">
                            <p class="para">onde esta ferramenta vai procurar pelo arquivo de configuração</p>
                        </li>

                        <li class="listitem">
                            <p class="para">ordem de pesquisa:</p>

                            <ul class="itemizedlist">
                                <li class="listitem">
                                    <p class="para">variável de ambiente ZF_CONFIG_FILE</p>
                                </li>

                                <li class="listitem">
                                    <p class="para">se existir o arquivo $homeDirectory/.zf.ini</p>
                                </li>

                                <li class="listitem">
                                    <p class="para">se existir o arquivo $storageDirectory/zf.ini</p>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>

                <li class="listitem">
                    <p class="para">ZEND_TOOL_INCLUDE_PATH</p>

                    <ul class="itemizedlist">
                        <li class="listitem">
                            <p class="para">configura o include_path para esta ferramenta usar este valor</p>
                        </li>

                        <li class="listitem">
                            <p class="para">comportamento original:</p>

                            <ul class="itemizedlist">
                                <li class="listitem">
                                    <p class="para">
                                        usa o include_path do <acronym class="acronym">PHP</acronym> para procurar o ZF
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">usa a variável de ambiente ZEND_TOOL_INCLUDE_PATH</p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        usa o caminho ../library (relativo para zf.php) para procurar o ZF
                                    </p>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>

                <li class="listitem">
                    <p class="para">ZF_TOOL_INCLUDE_PATH_PREPEND</p>

                    <ul class="itemizedlist">
                        <li class="listitem">
                            <p class="para">precede o php.ini include_path atual com este valor</p>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</div>
        <hr />

            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.tool.html">Zend_Tool</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.tool.html">Zend_Tool</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.tool.extending.html">Extendendo o Zend_Tool</a></div>
                    </td>
                </tr>
            </table>
</td>
        <td style="font-size: smaller;" width="15%"> <style type="text/css">
#leftbar {
	float: left;
	width: 186px;
	padding: 5px;
	font-size: smaller;
}
ul.toc {
	margin: 0px 5px 5px 5px;
	padding: 0px;
}
ul.toc li {
	font-size: 85%;
	margin: 1px 0 1px 1px;
	padding: 1px 0 1px 11px;
	list-style-type: none;
	background-repeat: no-repeat;
	background-position: center left;
}
ul.toc li.header {
	font-size: 115%;
	padding: 5px 0px 5px 11px;
	border-bottom: 1px solid #cccccc;
	margin-bottom: 5px;
}
ul.toc li.active {
	font-weight: bold;
}
ul.toc li a {
	text-decoration: none;
}
ul.toc li a:hover {
	text-decoration: underline;
}
</style>
 <ul class="toc">
  <li class="header home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="reference.html">Refer&ecirc;ncia do Zend Framework</a></li>
  <li class="header up"><a href="zend.tool.html">Zend_Tool</a></li>
  <li class="active"><a href="zend.tool.usage.cli.html">Usando Zend_Tool na Linha de Comando</a></li>
  <li><a href="zend.tool.extending.html">Extendendo o Zend_Tool</a></li>
 </ul>
 </td>
    </tr>
</table>

<script type="text/javascript" src="../js/shCore.js"></script>
<script type="text/javascript" src="../js/shAutoloader.js"></script>
<script type="text/javascript" src="../js/main.js"></script>

</body>
</html>